package com.bestcem.xm.user.annotations;


import java.lang.annotation.*;
/**
 * 限流注解
 *
 * @author panyun <yun.pan@idiaoyan.com>
 * @version v1.0
 * @date 2022/3/29 10:30
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FreqLimit {

    /**
     * 限制时间间隔
     */
    int durian();

    /**
     * 时间间隔内的访问次数
     */
    int limit() default 1;

    /**
     * 根据url限制
     */
    boolean url() default false;

    /**
     * 根据method限制
     */
    boolean withMethod() default false;

    /**
     * 根据参数限制
     */
    boolean withArgs() default false;

    /**
     * 据指定json参数限制
     */
    String[] jsonKeys() default {};

    /**
     * 根据指定jwt参数限制
     */
    String[] jwtKeys() default {};

    /**
     * 多重限制时候的互斥前缀
     */
    String multipleRejectionPrefix() default "";
}
